home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / mint / mnt99pc / osbind.h < prev    next >
C/C++ Source or Header  |  1992-10-19  |  10KB  |  328 lines

  1. /* Special osbind.h file for MiNT and PureC, see puremint.txt
  2.    for details */
  3.  
  4. typedef struct          /* used by Cconrs */
  5. {
  6.         unsigned char maxlen;
  7.         unsigned char actuallen;
  8.         char    buffer[255];
  9. } LINE;
  10.  
  11.  
  12. typedef struct          /* used by Fsetdta, Fgetdta */
  13. {
  14.     char            d_reserved[21];
  15.     unsigned char   d_attrib;
  16.     unsigned int    d_time;
  17.     unsigned int    d_date;
  18.     unsigned long   d_length;
  19.     char            d_fname[14];
  20. } DTA;
  21.  
  22. typedef struct baspag   /* used by Pexec */
  23. {
  24.         void    *p_lowtpa;
  25.         void    *p_hitpa;
  26.         void    *p_tbase;
  27.         long    p_tlen;
  28.         void    *p_dbase;
  29.         long    p_dlen;
  30.         void    *p_bbase;
  31.         long    p_blen;
  32.         DTA     *p_dta;
  33.         struct baspag *p_parent;
  34.         long    p_resrvd0;
  35.         char    *p_env;
  36.         char    p_stdfh[6];
  37.         char    p_resrvd1;
  38.         char    p_curdrv;
  39.         long    p_resrvd2[18];
  40.         char    p_cmdlin[128];
  41. } BASPAG;
  42.  
  43. typedef struct          /* used by Getbpb */
  44. {
  45.         int     recsiz;
  46.         int     clsiz;
  47.         int     clsizb;
  48.         int     rdlen;
  49.         int     fsiz;
  50.         int     fatrec;
  51.         int     datrec;
  52.         int     numcl;
  53.         int     bflags;
  54. } BPB;
  55.  
  56. typedef struct          /* used by Iorec */
  57. {
  58.         void    *ibuf;
  59.         int     ibufsiz;
  60.         int     ibufhd;
  61.         int     ibuftl;
  62.         int     ibuflow;
  63.         int     ibufhi;
  64. } IOREC;
  65.  
  66.  
  67. typedef struct          /* used by Kbdvbase */
  68. {
  69.         void    (*kb_midivec)();
  70.         void    (*kb_vkbderr)();
  71.         void    (*kb_vmiderr)();
  72.         void    (*kb_statvec)();
  73.         void    (*kb_mousevec)();
  74.         void    (*kb_clockvec)();
  75.         void    (*kb_joyvec)();
  76.         void    (*kb_midisys)();
  77.         void    (*kb_kbdsys)();
  78. } KBDVBASE;
  79.  
  80.  
  81. typedef struct          /* used by Pexec */
  82. {
  83.         unsigned char   length;
  84.         char            command_tail[128];
  85. } COMMAND;
  86.  
  87.  
  88. typedef struct          /* used by Prtblk */
  89. {
  90.         void    *pb_scrptr;
  91.         int     pb_offset;
  92.         int     pb_width;
  93.         int     pb_height;
  94.         int     pb_left;
  95.         int     pb_right;
  96.         int     pb_screz;
  97.         int     pb_prrez;
  98.         void    *pb_colptr;
  99.         int     pb_prtype;
  100.         int     pb_prport;
  101.         void    *pb_mask;
  102. } PBDEF;
  103.  
  104.  
  105. typedef struct          /* used by Keytbl */
  106. {
  107.         char *unshift;
  108.         char *shift;
  109.         char *capslock;
  110. } KEYTAB;
  111.  
  112.  
  113. typedef struct __md
  114. {
  115.         struct __md *m_link;
  116.         void        *m_start;
  117.         long        m_length;
  118.         BASPAG      *m_own;
  119. } MD;
  120.  
  121.  
  122. typedef struct          /* used by Getmpb */
  123. {
  124.         MD *mp_mfl;
  125.         MD *mp_mal;
  126.         MD *mp_rover;
  127. } MPB;
  128.  
  129. typedef struct
  130. {
  131.         int   (*Bconstat) ();
  132.         long  (*Bconin) ();
  133.         int   (*Bcostat) ();
  134.         void  (*Bconout) ();
  135.         long  (*Rsconf) ();
  136.         IOREC *iorec;
  137. } MAPTAB;
  138.  
  139. typedef struct
  140. {
  141.         MAPTAB *maptab;
  142.         int    maptabsize;
  143. } BCONMAP;
  144.  
  145. /* system variable _sysbase (0x4F2L) points to next structure         */
  146. typedef struct _syshdr
  147. {
  148.     unsigned       os_entry;   /* $00 BRA to reset handler             */
  149.     unsigned       os_version; /* $02 TOS version number               */
  150.     void           *os_start;  /* $04 -> reset handler                 */
  151.     struct _syshdr *os_base;   /* $08 -> baseof OS                     */
  152.     void           *os_membot; /* $0c -> end BIOS/GEMDOS/VDI ram usage */
  153.     void           *os_rsv1;   /* $10 << unused,reserved >>            */
  154.     long           *os_magic;  /* $14 -> GEM memoryusage parm. block   */
  155.     long           os_gendat;  /* $18 Date of system build($MMDDYYYY)  */
  156.     int            os_palmode; /* $1c OS configuration bits            */
  157.     int            os_gendatg; /* $1e DOS-format date of systembuild   */
  158. /*
  159.     The next three fields are only available in TOS versions 1.2 and
  160.     greater
  161. */
  162.     void           *_root;     /* $20 -> base of OS pool               */
  163.     long           *kbshift;   /* $24 -> keyboard shift state variable */
  164.     BASPAG         **_run;     /* $28 -> GEMDOS PID of current process */
  165.     void           *p_rsv2;    /* $2c << unused, reserved >>           */
  166. } SYSHDR;
  167.  
  168.  
  169.  
  170. /* attributes for Fcreate/Fsfirst/Fsnext: */
  171.  
  172. #define FA_READONLY     0x01
  173. #define FA_HIDDEN       0x02
  174. #define FA_SYSTEM       0x04
  175. #define FA_VOLUME       0x08
  176. #define FA_SUBDIR       0x10
  177. #define FA_ARCHIVE      0x20
  178.  
  179. /* Fopen modes: */
  180.  
  181. #define FO_READ         0
  182. #define FO_WRITE        1
  183. #define FO_RW           2
  184.  
  185. extern BASPAG *_BasPag;
  186. extern long _PgmSize;
  187.  
  188. /****** Tos *************************************************************/
  189.  
  190. void    Pterm0( void );
  191. long    Cconin( void );
  192. void    Cconout( int c );
  193. int     Cauxin( void );
  194. void    Cauxout( int c );
  195. int     Cprnout( int c );
  196. long    Crawio( int w );
  197. long    Crawcin( void );
  198. long    Cnecin( void );
  199. int     Cconws( const char *buf );
  200. void    Cconrs( LINE *buf );
  201. int     Cconis( void );
  202. long    Dsetdrv( int drv );
  203. int     Cconos( void );
  204. int     Cprnos( void );
  205. int     Cauxis( void );
  206. int     Cauxos( void );
  207. int     Dgetdrv( void );
  208. void    Fsetdta( void *buf );
  209. long    Super( void *stack );
  210. unsigned int  Tgetdate( void );
  211. unsigned int Tsetdate( unsigned int date );
  212. unsigned int  Tgettime( void );
  213. unsigned int  Tsettime( unsigned int time );
  214. DTA     *Fgetdta( void );
  215. int     Sversion( void );
  216. void    Ptermres( long keepcnt, int retcode );
  217. int     Dfree( long *buf, int driveno );
  218. int     Dcreate( const char *path );
  219. int     Ddelete( const char *path );
  220. int     Dsetpath( const char *path );
  221. long    Fcreate( const char *filename, int attr );
  222. long    Fopen( const char *filename, int mode );
  223. int     Fclose( int handle );
  224. long    Fread( int handle, long count, void *buf );
  225. long    Fwrite( int handle, long count, void *buf );
  226. int     Fdelete( const char *filename );
  227. long    Fseek( long offset, int handle, int seekmode );
  228. int     Fattrib( const char *filename, int wflag, int attrib );
  229. long    Fdup( int handle );
  230. long    Fforce( int stch, int nonstdh );
  231. int     Dgetpath( char *path, int driveno );
  232. long    Malloc( long number );
  233. int     Mfree( void *block );
  234. int     Mshrink( int zero, void *block, long newsiz );
  235. long    Pexec( int mode, char *ptr1, void *ptr2, void *ptr3 );
  236. void    Pterm( int retcode );
  237. int     Fsfirst( const char *filename, int attr );
  238. int     Fsnext( void );
  239. int     Frename( int zero, const char *oldname, const char *newname );
  240. int     Fdatime( short *timeptr, int handle, int wflag );
  241.  
  242. /****** TOS 030 Gemdos Extension ****************************************/
  243.  
  244. long    Mxalloc( long number, int mode );
  245. long    Maddalt( void *start, long size );
  246.  
  247. /****** Network Gemdos Extension ****************************************/
  248.  
  249. long    Flock( int handle, int mode, long start, long length );
  250.  
  251. /****** Bios ************************************************************/
  252.  
  253. void    Getmpb( MPB *ptr );
  254. int     Bconstat( int dev );
  255. long    Bconin( int dev );
  256. long    Bconout( int dev, int c );
  257. long    Rwabs( int rwflag, void *buf, int cnt, int recnr, int dev );
  258. void    (*Setexc( int number, long *exchdlr));
  259. long    Tickcal( void );
  260. BPB     *Getbpb( int dev );
  261. long    Bcostat( int dev );
  262. long    Mediach( int dev );
  263. long    Drvmap( void );
  264. long    Kbshift( int mode );
  265.  
  266.  
  267. /****** XBios ***********************************************************/
  268.  
  269. void    Initmous( int type, char *par, void *mousevec);
  270. void    *Ssbrk( int count );
  271. void    *Physbase( void );
  272. void    *Logbase( void );
  273. int     Getrez( void );
  274. void    Setscreen( void *laddr, void *paddr, int rez );
  275. void    Setpalette( void *pallptr );
  276. int     Setcolor( int colornum, int color );
  277. int     Floprd( void *buf, long filler, int devno, int sectno,
  278.                int trackno, int sideno, int count );
  279. int     Flopwr( void *buf, long filler, int devno, int sectno,
  280.                int trackno, int sideno, int count );
  281. int     Flopfmt( void *buf, long filler, int devno, int spt, int trackno,
  282.                 int sideno, int interlv, long magic, int virgin );
  283. void    Midiws( int cnt, void *ptr );
  284. void    Mfpint( int erno, void (*vector)() );
  285. IOREC   *Iorec( int dev );
  286. long    Rsconf( int baud, int ctr, int ucr, int rsr, int tsr, int scr );
  287. KEYTAB  *Keytbl( void *unshift, void *shift, void *capslock );
  288. long    Random( void );
  289. void    Protobt( void *buf, long serialno, int disktype, int execflag );
  290. int     Flopver( void *buf, long filler, int devno, int sectno,
  291.                 int trackno, int sideno, int count );
  292. void    Scrdmp( void );
  293. int     Cursconf( int func, int rate );
  294. void    Settime( unsigned long time );
  295. unsigned long  Gettime( void );
  296. void    Bioskeys( void );
  297. void    Ikbdws( int count, void *ptr );
  298. void    Jdisint( int number );
  299. void    Jenabint( int number );
  300. char    Giaccess( char data, int regno );
  301. void    Offgibit( int bitno );
  302. void    Ongibit( int bitno );
  303. void    Xbtimer( int timer, int control, int data, void (*vector)() );
  304. void    *Dosound( void *buf );
  305. int     Setprt( int config );
  306. KBDVBASE *Kbdvbase( void );
  307. int     Kbrate( int initial, int repeat );
  308. void    Prtblk( PBDEF *par );
  309. void    Vsync( void );
  310. long    Supexec( long (*func)() );
  311. void    Puntaes( void );
  312. int     Floprate( int devno, int newrate );
  313. int     Blitmode( int mode );
  314.  
  315. /* TOS030 XBios */
  316. int     DMAread( long sector, int count, void *buffer, int devno );
  317. int     DMAwrite( long sector, int count, void *buffer, int devno );
  318. int     NVMaccess( int opcode, int start, int count, void *buffer );
  319. long    Bconmap( int devno );
  320. int     Esetshift( int shftMode );
  321. int     Egetshift( void );
  322. int     EsetBank( int bankNum );
  323. int     EsetColor( int colorNum, int color );
  324. void    EsetPalette( int colorNum, int count, int *palettePtr );
  325. void    EgetPalette( int colorNum, int count, int *palettePtr );
  326. int     EsetGray( int swtch );
  327. int     EsetSmear( int swtch );
  328.